﻿using System;

namespace PolePositionMobile.Entities
{
    /// <summary>
    /// An entity representing an image
    /// </summary>
    [Serializable]
    public class EImage
    {
        //Created by: VMCoder
        //Creation date: -
        //Last updated by: VMCoder
        //Last update: 2008.04.10

        #region Private Members
        Int32 m_ImageId;
        Int32 m_VisitFk = Int32.MinValue;
        Int32 m_PoleFk = Int32.MinValue;
        bool m_PoleFkIsId = false;
        double m_Latitude;
        double m_Longitude;
        double m_Altitude;
        Int32 m_SatelliteCount;
        DateTime m_SatelliteTime;
        bool m_SolutionAvailable;
        string m_Filename;
        Int32 m_ImageServerID;
        Int32 m_PoleServerID;
        Int32 m_StructureServerID;
        DateTime m_uploadedDate;
        #endregion Private Members

        #region Properties
        public Int32 ImageId
        {
            get { return m_ImageId; }
            set { m_ImageId = value; }
        }
        public Int32 VisitFk
        {
            get { return m_VisitFk; }
            set { m_VisitFk = value; }
        }
        public Int32 PoleFk
        {
            get { return m_PoleFk; }
            set { m_PoleFk = value; }
        }
        public bool PoleFkIsId
        {
            get { return m_PoleFkIsId; }
            set { m_PoleFkIsId = value; }
        }
        public double Latitude
        {
            get { return m_Latitude; }
            set { m_Latitude = value; }
        }
        public double Longitude
        {
            get { return m_Longitude; }
            set { m_Longitude = value; }
        }
        public double Altitude
        {
            get { return m_Altitude; }
            set { m_Altitude = value; }
        }
        public Int32 SatelliteCount
        {
            get { return m_SatelliteCount; }
            set { m_SatelliteCount = value; }
        }
        public DateTime SatelliteTime
        {
            get { return m_SatelliteTime; }
            set { m_SatelliteTime = value; }
        }
        public bool SolutionAvailable
        {
            get { return m_SolutionAvailable; }
            set { m_SolutionAvailable = value; }
        }
        public string Filename
        {
            get { return m_Filename; }
            set { m_Filename = value; }
        }
        public Int32 ImageServerID
        {
            get { return m_ImageServerID; }
            set { m_ImageServerID = value; }
        }
        public Int32 PoleServerID
        {
            get { return m_PoleServerID; }
            set { m_PoleServerID = value; }
        }
        public Int32 StructureServerID
        {
            get { return m_StructureServerID; }
            set { m_StructureServerID = value; }
        }
        public DateTime UploadedDate
        {
            get { return m_uploadedDate; }
            set { m_uploadedDate = value; }
        }
        #endregion Properties

        #region Constructors
		public EImage()
		{
			m_ImageId = Int32.MinValue;
		}
        public EImage(Int32 imageId)
			: this()
		{
            m_ImageId = imageId;
		}
        public EImage(Int32 imageId, Int32 visitFk, Int32 poleFk, bool poleFkIsId, double latitude, double longitude, double altitude, Int32 satelliteCount, DateTime satelliteTime, bool solutionAvailable, string filename)
            : this(imageId)
        {
            m_VisitFk = visitFk;
            m_PoleFk = poleFk;
            m_PoleFkIsId = poleFkIsId;
            m_Latitude = latitude;
            m_Longitude = longitude;
            m_Altitude = altitude;
            m_SatelliteCount = satelliteCount;
            m_SatelliteTime = satelliteTime;
            m_SolutionAvailable = solutionAvailable;
            m_Filename = filename;
        }
        #endregion Constructors
    }
}
